import axios from 'axios'
import { useEnterpriseStore } from '@/stores'
import router from '@/router'
const baseURL = 'http://localhost:8080'
const Enterprise_instance = axios.create({
  // TODO 1. 基础地址，超时时间
  baseURL,
  timeout: 10000,
  headers: {
    token: ''
  }
})

// 添加请求拦截器
Enterprise_instance.interceptors.request.use(
  function (config) {
    // TODO 2. 携带token
    const enterpriseStore = useEnterpriseStore()
    if (enterpriseStore.token) {
      config.headers.token = enterpriseStore.token
    }
    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
Enterprise_instance.interceptors.response.use(
  function (res) {
    // TODO 4. 摘取核心响应数据
    if (res.data.code === 1) {
      return res
    } else if (res.data.code === 2) {
      ElMessage.success(res.data.msg || '请重新登录')
      router.push('/')
    }
    // TODO 3. 处理业务失败
    // 处理业务失败, 给错误提示，抛出错误
    ElMessage.error(res.data.msg || '服务异常')
    return Promise.reject(res.data)
  },
  function (error) {
    console.log(error)
    return Promise.reject(error)
  }
)
export default Enterprise_instance
export { baseURL }
